home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HPAVC
/
HPAVC CD-ROM.iso
/
PWAULTP3.ZIP
/
PWAPRGMS.A02
/
PWA95
/
PWAEF21.ZIP
/
EFLAG.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1995-02-19
|
10KB
|
814 lines
;------------------------------------------------------------------------------
; .ss.
; `²²'
; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
; .sS²°$$$²²°"' d²°'
; .$$² .$$'
; $$$.,d$$'
; `²S$$S²'
;------------------------------------------------------------------------------
; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
;------------------------------------------------------------------------------
; PPE 3.O1 (Encryption type I) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
Boolean BOOLEAN001
Boolean BOOLEAN002
Boolean BOOLEAN003
Boolean BOOLEAN004
Boolean BOOLEAN005
String STRING001
String TSTRING002(1)
String TSTRING003(1)
String TSTRING004(1)
String TSTRING005(1)
String STRING006
String TSTRING007(1)
String TSTRING008(1)
String TSTRING009(1)
String TSTRING010(1)
String STRING011
String TSTRING012(1)
String STRING013
String STRING014
String STRING016
String STRING019
String STRING020
String STRING021
String STRING022
String STRING023
String STRING024
String STRING029
Int TINT001(1)
Int INT002
Int INT003
Int TINT004(1)
Int INT005
Int INT006
Int INT007
Int INT008
Int INT009
Int INT010
Int INT011
Int INT012
Int INT013
Int INT014
Int INT015
Int INT016
Int INT017
Int INT021
Int INT027
Int INT028
Declare Function FUNCTION001() String
Declare Function FUNCTION002() String
Declare Procedure PROC001()
Declare Procedure PROC002()
Declare Procedure PROC003()
Declare Procedure PROC004()
Declare Procedure PROC005()
Declare Procedure PROC006(Int INT024, Int INT025, Int INT026)
Declare Procedure PROC007()
Declare Procedure PROC008(String STRING015)
Declare Procedure PROC009()
Declare Procedure PROC010(Int INT022, Int INT023, String STRING018)
Declare Procedure PROC011(Int INT018, Var Int INT019, Var Int INT020, Var Boolean BOOLEAN006, String STRING017)
Declare Procedure PROC012()
Declare Procedure PROC013()
;------------------------------------------------------------------------------
If (!0) Brag ; PPLC BUG!
PROC001()
PROC004()
PROC005()
End
;------------------------------------------------------------------------------
Procedure PROC005()
Int INT012
Int INT013
Int INT014
String STRING014
Boolean BOOLEAN004
PROC002()
STRING014 = ""
INT012 = 1
INT013 = 1
PROC006(1, INT012, INT013)
BOOLEAN004 = 0
:LABEL001
If (BOOLEAN004) Goto LABEL005
Delay INT008
INT014 = Asc(Inkey())
Select Case (INT014)
Case 82, 54, 62, 93
INT013 = INT012
Inc INT012
If (INT012 > INT003) INT012 = 1
PROC006(1, INT012, INT013)
Case 76, 52, 9, 60, 91
INT013 = INT012
Dec INT012
If (INT012 < 1) INT012 = INT003
PROC006(1, INT012, INT013)
Case 85, 56
INT010 = GetY()
INT011 = INT010
STRING014 = FUNCTION001()
If (STRING014 <> "") Then
PROC008(STRING014)
If (!BOOLEAN003 && !BOOLEAN004) Then
Print Chr(27) + "[u"
ClrEol
Goto LABEL002
Endif
BOOLEAN003 = 0
:LABEL002
PROC002()
Endif
STRING014 = ""
INT012 = 1
INT013 = 1
PROC006(1, INT012, INT013)
Case 68, 50, 32
If ((INT014 == 32) && (BOOLEAN002 == 0)) Goto LABEL004
INT010 = GetY()
INT011 = 0
STRING014 = FUNCTION002()
If (STRING014 <> "") Then
PROC008(STRING014)
If (!BOOLEAN003 && !BOOLEAN004) Then
Print Chr(27) + "[u"
ClrEol
Goto LABEL003
Endif
BOOLEAN003 = 0
:LABEL003
PROC002()
Endif
STRING014 = ""
INT012 = 1
INT013 = 1
PROC006(1, INT012, INT013)
:LABEL004
Case 33
PROC012()
Case 63
If (!BOOLEAN003 && !BOOLEAN004) Then
PROC013()
Else
BOOLEAN003 = 0
Endif
Case 13
PROC010(1, INT012, STRING014)
BOOLEAN004 = 1
Case 27
If (BOOLEAN001) Then
Print Chr(27) + "[u"
ClrEol
KbdStuff "N"
BOOLEAN004 = 1
Endif
PROC011(1, INT012, INT013, BOOLEAN004, Chr(INT014))
Case tñ⌠
PROC006(1, INT012, INT013)
If (BOOLEAN001) PROC010(1, INT012, STRING014)
BOOLEAN004 = BOOLEAN001
End Select
Goto LABEL001
:LABEL005
EndProc
;------------------------------------------------------------------------------
Procedure PROC008(String STRING015)
Int INT015
Int INT016
Int INT017
String STRING016
Boolean BOOLEAN005
INT015 = 1
INT016 = 1
PROC003()
PROC006(2, INT015, INT016)
BOOLEAN005 = 0
:LABEL006
If (BOOLEAN005) Goto LABEL008
Delay INT008
STRING016 = Inkey()
INT017 = Asc(STRING016)
Select Case (INT017)
Case 85, 56
PROC009()
STRING015 = FUNCTION001()
If (STRING015 == "") Then
BOOLEAN005 = 1
Endif
Case 68, 50, 32
If ((INT017 == 32) && (BOOLEAN002 == 0)) Goto LABEL007
PROC009()
STRING015 = FUNCTION002()
If (STRING015 == "") Then
BOOLEAN005 = 1
Endif
:LABEL007
Case 82, 54
INT016 = INT015
Inc INT015
If (INT015 > INT006) INT015 = 1
PROC006(2, INT015, INT016)
Case 76, 52
INT016 = INT015
Dec INT015
If (INT015 < 1) INT015 = INT006
PROC006(2, INT015, INT016)
Case 72
INT016 = INT015
INT015 = 1
PROC006(2, INT015, INT016)
Case 69
INT016 = INT015
INT015 = INT006
PROC006(2, INT015, INT016)
Case 27
If (BOOLEAN001) Then
BOOLEAN005 = BOOLEAN001
PROC009()
Print Chr(27) + "[u"
ClrEol
Endif
Case 33
PROC012()
Case 63
If (!BOOLEAN003 && !BOOLEAN005) Then
PROC013()
Else
BOOLEAN003 = 0
Endif
Case 13
PROC010(2, INT015, STRING015)
BOOLEAN005 = 1
PROC011(2, INT015, INT016, BOOLEAN005, STRING016)
Case tñ⌠
PROC006(2, INT015, INT016)
If (BOOLEAN001) PROC010(2, INT015, STRING015)
BOOLEAN005 = BOOLEAN001
End Select
Goto LABEL006
:LABEL008
EndProc
;------------------------------------------------------------------------------
Procedure PROC011(Int INT018, Var Int INT019, Var Int INT020, Var Boolean BOOLEAN006, String STRING017)
Int INT021
INT021 = 1
Select Case (INT018)
Case 1
:LABEL009
If (BOOLEAN006) Goto LABEL010
If (Lower(STRING017) == Lower(TSTRING004(INT021))) Then
INT020 = INT019
INT019 = INT021
BOOLEAN006 = 1
Else
Inc INT021
If (INT021 > INT003) Goto LABEL010
Endif
Goto LABEL009
:LABEL010
Case 2
:LABEL011
If (BOOLEAN006) Goto LABEL013
If ((Asc(STRING017) == 27) && (TSTRING010(INT021) == "quit")) Then
INT020 = INT019
INT019 = INT021
BOOLEAN006 = 1
Goto LABEL012
Endif
If (Lower(STRING017) == Lower(TSTRING009(INT021))) Then
BOOLEAN006 = 1
INT020 = INT019
INT019 = INT021
Goto LABEL012
Endif
Inc INT021
If (INT021 > INT006) Goto LABEL013
:LABEL012
Goto LABEL011
End Select
:LABEL013
EndProc
;------------------------------------------------------------------------------
Procedure PROC010(Int INT022, Int INT023, String STRING018)
String STRING019
Select Case (INT022)
Case 1
STRING019 = Lower(TSTRING005(INT023))
Print Chr(13)
ClrEol
Print Chr(13)
Select Case (STRING019)
Case "cont"
KbdStuff Chr(13)
Case "flag"
If (STRING018 <> "") Then
KbdStuff "FL " + STRING018
Else
KbdStuff "FL"
Endif
Case "view"
If (STRING018 <> "") Then
KbdStuff "V " + STRING018
Else
KbdStuff "V"
Endif
SaveScrn
Case "nstop"
KbdStuff "NS"
Case "stop"
KbdStuff "N"
Case Else
SaveScrn
DispStr STRING019
BOOLEAN003 = 1
End Select
Case 2
STRING019 = Lower(TSTRING010(INT023))
If (STRING019 == "flag") Then
PROC009()
Print Chr(27) + "[u"
ClrEol
KbdStuff "FL " + STRING018
End
Goto LABEL014
Endif
If (STRING019 == "view") Then
PROC009()
Print Chr(27) + "[u"
ClrEol
KbdStuff "V " + STRING018
SaveScrn
End
Goto LABEL014
Endif
If (STRING019 == "quit") Then
PROC009()
Print Chr(27) + "[u"
ClrEol
Goto LABEL014
Endif
PROC009()
Print Chr(27) + "[u"
ClrEol
SaveScrn
DispStr STRING019 + " " + STRING018
Print Chr(27) + "[u" + Chr(27) + "[" + String(U_PageLen - 1) + "A"
RestScrn
BOOLEAN003 = 1
StartDisp 0
StartDisp 2
End Select
:LABEL014
EndProc
;------------------------------------------------------------------------------
Procedure PROC009()
Print Chr(27) + "[u" + Chr(27) + "[" + String(INT010 - INT009) + "A"
Print STRING013 + Chr(13)
EndProc
;------------------------------------------------------------------------------
Function FUNCTION001() String
String STRING021
String STRING022
STRING021 = ""
While (INT011 > 0) Do
Dec INT011
If (TSTRING012(INT011) <> "") Then
PROC007()
STRING021 = TSTRING012(INT011)
Break
Endif
EndWhile
FUNCTION001 = STRING021
EndFunc
;------------------------------------------------------------------------------
Function FUNCTION002() String
String STRING023
String STRING024
STRING023 = ""
While (INT011 < INT010) Do
Inc INT011
If (TSTRING012(INT011) <> "") Then
PROC007()
STRING023 = TSTRING012(INT011)
Break
Endif
EndWhile
FUNCTION002 = STRING023
EndFunc
;------------------------------------------------------------------------------
Procedure PROC007()
Print Chr(27) + "[u" + Chr(27) + "[" + String(INT010 - INT011) + "A"
INT009 = INT011
STRING013 = ScrText(1, INT009, INT007, 1)
Print STRING011 + StripAtx(STRING013) + Chr(13)
EndProc
;------------------------------------------------------------------------------
Procedure PROC004()
String STRING024
INT011 = 1
While (INT011 > 0) Do
ScrFile INT011, STRING024
If (INT011 <> 0) Then
TSTRING012(INT011) = STRING024
Inc INT011
Endif
EndWhile
EndProc
;------------------------------------------------------------------------------
Procedure PROC006(Int INT024, Int INT025, Int INT026)
Print Chr(27) + "[u" + Chr(13)
If (INT024 == 1) Then
Forward TINT001(INT026) - 1
Print TSTRING002(INT026)
Else
Forward TINT004(INT026) - 1
Print TSTRING007(INT026)
Endif
Print Chr(13)
If (INT024 == 1) Then
Forward TINT001(INT025) - 1
Print TSTRING003(INT025)
Else
Forward TINT004(INT025) - 1
Print TSTRING008(INT025)
Endif
EndProc
;------------------------------------------------------------------------------
Procedure PROC003()
Int INT027
DefColor
Print Chr(27) + "[u" + Chr(13)
ClrEol
Print Chr(13) + Chr(27) + "[s"
Print STRING006
TINT004(1) = GetX()
For INT027 = 1 To INT006
Print TSTRING007(INT027) + Space(INT005)
TINT004(1 + INT027) = TINT004(INT027) + Len(StripAtx(TSTRING007(INT027)))
Next
ClrEol
DefColor
EndProc
;------------------------------------------------------------------------------
Procedure PROC002()
Int INT028
Print Chr(27) + "[s"
Print STRING001
TINT001(1) = GetX()
For INT028 = 1 To INT003
TINT001(INT028 + 1) = TINT001(INT028) + Len(StripAtx(TSTRING002(INT028)))
Print TSTRING002(INT028) + Space(INT002)
Next
EndProc
;------------------------------------------------------------------------------
Procedure PROC001()
String STRING025
String STRING026
String STRING027
String STRING028
Byte BYTE001
GetUser
If (U_PageLen) Goto LABEL015
End
Goto LABEL016
:LABEL015
Redim TSTRING012, U_PageLen + 1
:LABEL016
STRING025 = PPEPath() + "EFLAG.CFG"
STRING026 = PPEPath() + "PROMPT1.CFG"
STRING027 = PPEPath() + "PROMPT2.CFG"
If (Exist(STRING025)) Then
STRING011 = ReadLine(STRING025, 1)
INT007 = S2I(ReadLine(STRING025, 2), 10)
If (Lower(ReadLine(STRING025, 3)) == "yes") Then
BOOLEAN001 = 1
Else
BOOLEAN001 = 0
Endif
If (Lower(ReadLine(STRING025, 4)) == "yes") Then
BOOLEAN002 = 1
Else
BOOLEAN002 = 0
Endif
INT008 = S2I(ReadLine(STRING025, 5), 10)
Else
STRING011 = "@X4F"
INT007 = 79
BOOLEAN001 = 1
BOOLEAN002 = 0
INT008 = 1
Endif
If (Exist(STRING026)) Then
FOpen 1, STRING026, 0, 2
FDefIn 1
FDGet STRING001
FDGet STRING028
INT002 = S2I(STRING028, 10)
FDGet STRING028
INT003 = S2I(STRING028, 10)
If (INT003) Then
Redim TSTRING002, INT003 + 1
Redim TSTRING003, INT003 + 1
Redim TSTRING004, INT003 + 1
Redim TSTRING005, INT003 + 1
Redim TINT001, INT003 + 1
For BYTE001 = 1 To INT003
FDGet TSTRING002(BYTE001)
FDGet TSTRING003(BYTE001)
FDGet TSTRING004(BYTE001)
FDGet TSTRING005(BYTE001)
Next
FClose 1
Else
End
Endif
Else
STRING001 = "@X08-[@X0FEFLAG 2.1@X08]-[@X0F@MINLEFT@ @X07min left@X08] @X07"
INT002 = 0
INT003 = 5
Redim TSTRING002, 6
Redim TSTRING003, 6
Redim TSTRING004, 6
Redim TSTRING005, 6
Redim TINT001, 6
TSTRING002(1) = "@X08 Cont @X07"
TSTRING003(1) = "@X4F CONT @X07"
TSTRING004(1) = "C"
TSTRING005(1) = "cont"
TSTRING002(2) = "@X08 Flag @X07"
TSTRING003(2) = "@X4F FLAG @X07"
TSTRING004(2) = "F"
TSTRING005(2) = "flag"
TSTRING002(3) = "@X08 View @X07"
TSTRING003(3) = "@X4F VIEW @X07"
TSTRING004(3) = "V"
TSTRING005(3) = "view"
TSTRING002(4) = "@X08 NStop @X07"
TSTRING003(4) = "@X4F NSTOP @X07"
TSTRING004(4) = "N"
TSTRING005(4) = "nstop"
TSTRING002(5) = "@X08 Stop @X07"
TSTRING003(5) = "@X4F STOP @X07"
TSTRING004(5) = "S"
TSTRING005(5) = "stop"
Endif
If (Exist(STRING027)) Then
FOpen 1, STRING027, 0, 2
FDefIn 1
FDGet STRING006
FDGet STRING028
INT005 = S2I(STRING028, 10)
FDGet STRING028
INT006 = S2I(STRING028, 10)
If (INT006) Then
Redim TSTRING007, INT006 + 1
Redim TSTRING008, INT006 + 1
Redim TSTRING009, INT006 + 1
Redim TSTRING010, INT006 + 1
Redim TINT004, INT006 + 1
For BYTE001 = 1 To INT006
FDGet TSTRING007(BYTE001)
FDGet TSTRING008(BYTE001)
FDGet TSTRING009(BYTE001)
FDGet TSTRING010(BYTE001)
Next
FClose 1
Else
End
Endif
Else
STRING006 = "@X08[@X0FFlag Cmds@X08] @X07"
INT005 = 0
INT006 = 3
Redim TSTRING007, 3
Redim TSTRING008, 3
Redim TSTRING009, 3
Redim TSTRING010, 3
Redim TINT004, 3
TSTRING007(1) = "@X08 Flag @X07"
TSTRING008(1) = "@X4F FLAG @X07"
TSTRING009(1) = "F"
TSTRING010(1) = "flag"
TSTRING007(2) = "@X08 View @X07"
TSTRING008(2) = "@X4F VIEW @X07"
TSTRING009(2) = "V"
TSTRING010(2) = "view"
TSTRING007(3) = "@X08 Quit @X07"
TSTRING008(3) = "@X4F QUIT @X07"
TSTRING009(3) = "Q"
TSTRING010(3) = "quit"
Endif
BOOLEAN003 = 0
RestScrn
ClrEol
EndProc
;------------------------------------------------------------------------------
Procedure PROC012()
String STRING029
STRING029 = "@X0FEnhanced Flag v2.1 (UNREGISTERED) by Drew [PWA]@X07"
SaveScrn
Print Chr(27) + "[u"
ClrEol
Print Chr(13)
Print Space((79 - Len(StripAtx(STRING029))) / 2) + STRING029
Delay 35
RestScrn
EndProc
;------------------------------------------------------------------------------
Procedure PROC013()
If (Exist(PPEPath() + "EFLAG.HLP")) Then
SaveScrn
DispFile PPEPath() + "EFLAG.HLP", 0
RestScrn
BOOLEAN003 = 1
Endif
EndProc
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 6 End
; 13 ClrEol
; 136 Goto
; 144 Let
; 31 Print
; 83 If
; 1 DispFile
; 2 FOpen
; 2 FClose
; 2 StartDisp
; 1 GetUser
; 2 DefColor
; 3 Delay
; 6 Inc
; 3 Dec
; 10 KbdStuff
; 2 DispStr
; 4 Forward
; 6 SaveScrn
; 4 RestScrn
; 2 FDefIn
; 14 FDGet
; 21 Redim
; 1 ScrFile
; 1 Brag
; 13 EndProc
; 2 EndFunc
;
;
; ■ Functions used :
;
; 1 /
; 67 +
; 8 -
; 59 ==
; 7 <>
; 7 <
; 4 <=
; 6 >
; 8 >=
; 84 !
; 15 &&
; 19 ||
; 3 Len(
; 8 Lower()
; 3 Space()
; 30 Chr()
; 3 Asc()
; 4 StripAtx()
; 2 Inkey()
; 3 String()
; 5 PPEPath()
; 5 ReadLine()
; 4 Exist()
; 6 S2I()
; 2 GetX()
; 2 GetY()
; 1 ScrText()
;
;------------------------------------------------------------------------------
;
; Analysis flags : No flag
;
;
;------------------------------------------------------------------------------
;
; One or more PPLC bugs were found, this is not a PPLX error, but PPLX is
; reporting the error ;) Some statements like VAR = !!!!10, VAR = !0*!0
; or similar things are not handled correctly by PPLC, some may use this
; to avoid a correct decompilation... This doesn't mean that there is
; actually an error, but the probability of error is high...
; ■ Search for : PPLC BUG
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 4 For/Next
; 3 While/EndWhile
; 31 If/Then or If/Then/Else
; 5 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------